In a typical cable television system, subscribers are provided with a set-top box or terminal. The set-top terminal is a box of electronic equipment that is used to connect the subscriber's television, and potentially other electronic equipment, with the cable network. The set-top box is usually connected to the cable network through a co-axial wall outlet.
The set-top box is essentially a computer that is programmed to process the signals from the cable network so as to provide the subscriber with the cable services. These services from the cable television company typically include access to a number of television channels. Additional, premium channels may also be provided to subscribers at an additional fee. Pay-per-view events may also be provided over the cable network. The set-top box is programmed to provide these services to subscriber.
However, the services of the cable company need not be limited to providing television programming. Some cable companies are now offering internet access and e-mail over the cable network at speeds much faster than are available over conventional telephone lines. It is anticipated in the future that more and more services will be commonly provided over cable networks, including video-on-demand and even basic telephone service. Eventually, each home or office may have a single connection, via the cable network, to all electronic data services.
As the cable network and the services provided evolve, the set-top terminal must also evolve to be able to provide subscribers with all the services of the cable network. This set-top box evolution will primarily involve changes to the programming of the set-top box. By upgrading the software or firmware of the set-top box, the box can be made to perform more efficiently or offer new services as the cable network evolves.
In order to upgrade the population of set-top boxes on a cable network, it is preferable to transmit the new programming to the set-top boxes via the cable network itself. Otherwise, a technician must visit each subscriber to upgrade the set-top boxes. Such field upgrades would obviously be at significant expense to the system operator.
The headend is the facility from which the cable network operator broadcasts television signals and provides other services over the cable network. Updated software that is provided to the population of set-top terminals can be broadcast from the headend over the cable network. Messages giving instructions or information to the set-top terminals can also be broadcast from the headend. Messages and programming are routinely broadcast by the headend over the cable network.
These messages and programming are typically “packetized,” meaning that the data of the message or the software or firmware is divided into discrete “packets” or segments of data. Each packet includes a header that identifies the message or object of which that packet is a part and identifies the position of that packet's data within that message or object. Consequently, the set-top terminal can collect the packets of the message or object it is trying to acquire and reassemble the packetized data into the message or object sent by the headend. The packets of each data object being transmitted bear a unique packet identifier (PID), typically a number, or other identifier within the PID stream that identifies the packets as belonging to a particular data object being transmitted.
With transmitted data objects being packetized, numerous data objects can be broadcast simultaneously by interspersing or “carouseling” the packets of the various objects being transmitted. The packets of each object may be continuously transmitted and retransmitted for a period of time to give set-top terminals a continuing opportunity to acquire the object. These streams of data packets can be sent on both in-band and out-of-band (OOB) channels of the cable signal sent from the headend to the set-top terminals.
Conventionally, the first packet of each object being transmitted, designated as segment 0 (zero), contains information about the size and nature of the packetized object which is necessary for the set-top terminal to acquire and use before downloading and reconstructing the object. Consequently, under conventional protocols, the set-top terminal waits to receive segment 0 of the object it is trying to acquire before commencing the actual downloading of the object itself. As a result, segment 0 may be retransmitted by the headend more frequently than the other segments or packets of the data object so as to more readily provide the set-top terminal with the data necessary to begin a download of the object.
As noted, the system operator will periodically need to upgrade the programming of the set-top terminals to accommodate upgrades or additional services offered within the system as the system evolves. In some cases, newer set-top terminals may be placed in service ready to accommodate the latest system services and protocols and only older terminals may need to be re-programmed. Thus, it is important for the headend to be able to direct specific terminals, or an identified group of terminals, to download and implement new programming.
In previous systems, it has been difficult for the headend to order set-top terminals to download and implement new programming. Under conventional system protocols, the headend has been required to send multiple messages to the set-top terminals in order to specify the identity of an object that set-top terminals are to download and provide the instruction to acquire the object. The set-top terminal then, using standard protocols, searches the incoming control channels and datastreams from the headend for the stream containing the identified object to be downloaded. Once the appropriate datastream for the object is located, the set-top terminal must wait for segment 0 of the object and the information that segment 0 contains before downloading of the object begins. Additional signaling from the headend is required to authorize and enable the set-top terminal to implement the new programming.
Consequently, there is a need in the art for an improved system of managing the programming in a population of set-top terminals in a cable television system. Specifically, there is a need in the art for a simplified and improved method and system with which a headend facility can direct set-top terminals to download and implement specified programming code objects.